DOMTokenList
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
DOMTokenList
介面表示一組以空白分隔的標記。這類集合通常由 Element.classList
或 HTMLLinkElement.relList
等屬性回傳。
DOMTokenList
的索引從 0
開始,與 JavaScript 的 Array
物件相同。DOMTokenList
永遠區分大小寫。
實例屬性
DOMTokenList.length
Read only-
一個
integer
,代表此物件中儲存的項目數量。 DOMTokenList.value
-
一個 stringifier 屬性,會以字串形式回傳整個清單的值。
實例方法
DOMTokenList.item()
-
根據索引回傳清單中的項目,若索引超過或等於清單的
length
,則回傳null
。 DOMTokenList.contains()
-
若清單中包含指定的標記,則回傳
true
,否則回傳false
。 DOMTokenList.add()
-
將指定的標記加入清單中。
DOMTokenList.remove()
-
從清單中移除指定的標記。
DOMTokenList.replace()
-
以另一個標記取代原有標記。
DOMTokenList.supports()
-
若指定的標記為關聯屬性所支援的標記,則回傳
true
。 DOMTokenList.toggle()
-
若清單中已存在該標記,則移除;否則加入。會回傳一個布林值,表示操作後該標記是否存在於清單中。
DOMTokenList.entries()
-
回傳一個迭代器,可用來遍歷此物件內所有鍵/值對。
DOMTokenList.forEach()
-
為清單中的每個元素執行一次所提供的回呼函式。
DOMTokenList.keys()
-
回傳一個迭代器,可用來遍歷此物件內所有鍵/值對的鍵。
DOMTokenList.toString()
-
回傳
DOMTokenList.value
,也就是以空白分隔的清單字串。 DOMTokenList.values()
-
回傳一個迭代器,可用來遍歷此物件內所有鍵/值對的值。
範例
以下簡單範例中,我們使用 Element.classList
取得一個 <p>
元素的類別清單(DOMTokenList
),接著使用 DOMTokenList.add()
新增一個類別,最後將 Node.textContent
更新為 DOMTokenList
的內容。
首先是 HTML:
<p class="a b c"></p>
接著是 JavaScript:
let para = document.querySelector("p");
let classes = para.classList;
para.classList.add("d");
para.textContent = `段落類別清單是 "${classes}"`;
輸出結果如下所示:
空白修剪與重複項目移除
會修改 DOMTokenList
的方法(例如 DOMTokenList.add()
)會自動修剪多餘的空白並移除清單中的重複值。例如:
<span class=" d d e f"></span>
let span = document.querySelector("span");
let classes = span.classList;
span.classList.add("x");
span.textContent = `行內容器類別清單是 "${classes}"`;
輸出結果如下所示:
規範
Specification |
---|
DOM # interface-domtokenlist |